<html>
<body>
  <script>
<code>


map():

 map和forEach等遍历方法不同，在forEach中return语句是没有任何效果的，
 而map则可以改变当前循环的值，返回一个新的被改变过值之后的数组（map需return），一般用来处理需要修改某一个数组的值。

 let arr1 = [1,2,3];
let arr2 = arr1.map((value,key,arr) =>{
    console.log(value)    // 1，2，3
    console.log(key)      // 0，1，2
    console.log(arr)      //[1,2,3] [1,2,3] [1,2,3]
    return value * value;
})
console.log(arr1); // [ 1, 2, 3 ]
console.log(arr2); // [ 1, 4, 9 ]


filter():

filter函数可以看成是一个过滤函数，返回符合条件的元素的数组

filter需要在循环的时候判断一下是true还是false，是true才会返回这个元素；
let arr1 = [1,2,3];
let arr2 = arr1.filter((value,key,arr) => {
    console.log(value)    // 1，2，3
    console.log(key)      // 0，1，2
    console.log(arr)      // [1,2,3]
    return value >= 3 ? false : true;     
})

console.log(arr1); // [ 1, 2, 3 ]
console.log(arr2); // [ 1, 2 ]


filter() 过滤不符合项

let arr = [1,2,3]
let newArr = arr.filter(item => item>=3)  
console.log(newArr)


去重推荐使用 set()方法
let arr = [1, 2, 2, 3, 4, 5, 5, 6];
let newArr =Array.from(new Set(arr)) 
console.log(newArr)


filter() 筛选数组对象


let arr = [
	    {a:'苹果',b:'面包',c:'吃'},
	    {a:'香蕉',b:'面包',c:'不吃'},
	    {a:'香蕉',b:'苹果',c:'吃'},
	    {a:'苹果',b:'香蕉',c:'不吃'},
	  ]
console.log(arr.filter(item => item.a=== '苹果' ))

//[{a:'苹果',b:'面包',c:'吃'},{a:'苹果',b:'香蕉',c:'不吃'}]


es6 map遍历的用法

map
map和forEach等遍历方法不同，在forEach中return语句是没有任何效果的，而map则可以改变当前循环的值，返回一个新的被改变过值之后的数组（map需return），一般用来处理需要修改某一个数组的值或者取数组中特定的值。
举栗：
返回特定的值
let arr1 = [{a:1},{a:2},{a:3}];
let arr2 = arr1.map((value) => {
    return value.a ;
})
console.log(arr1); // [{a:1},{a:2},{a:3}]
console.log(arr2); // [ 1, 2, 3 ]


修改数组中的值
let arr1 = [1,2,3];

let arr2 = arr1.map((item,key,arr) => {

    return item + 1;

})

console.log(arr1); // [ 1, 2, 3 ]

console.log(arr2); // [ 2, 3, 4 ]

</code>
</script>
</body>
</html>